home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 3
/
Gold Medal Software - Volume 3 (Gold Medal) (1994).iso
/
prog
/
word.arj
/
256CON.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-28
|
4KB
|
204 lines
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <wgt.h>
#include <wgtmenu.h>
#include <filesel.h>
color pal[256]; // our palette
char *menubar[10]={" QUIT "," FILE "," MODE ",NULL,NULL,NULL,NULL,NULL,NULL,NULL};
int menuchoice; // result from menus
wgtfont little; // smaller font with special characters
int picmode=3; // mode for picture (PCX,PAK,BLK)
char *picturename; // filename of picture for loading and saving
// used with file selector
char *palname; // filename of palette
block screen2; // a virtual screen to load pictures onto
void changemode(int);
void loadapicture(void);
void saveapicture(void);
void dopalette(void);
void main(void)
{
vga256();
screen2=wnewblock(0,0,319,199);
little=wloadfont("c:\\tc\\newwgt\\fonts\\medium.wfn");
wreadpalette(0,255,&pal);
wsetrgb(1,63,63,63,&pal);
wsetrgb(253,50,50,50,&pal);
wsetrgb(254,40,40,40,&pal);
wsetrgb(255,30,30,30,&pal);
wsetpalette(0,255,&pal);
menubarcolor=254;
menubartextcolor=1;
bordercolor=255;
highlightcolor=144;
menufont=little;
dropdown[0].choice[0]=" QUIT ";
dropdown[1].choice[0]="LOAD A PICTURE";
dropdown[1].choice[1]="--------------";
dropdown[1].choice[2]="SAVE A PICTURE";
dropdown[1].choice[3]="--------------";
dropdown[1].choice[4]="LOAD A PALETTE";
dropdown[1].choice[5]="--------------";
dropdown[1].choice[6]="SAVE A PALETTE";
dropdown[2].choice[0]=" PCX \x09";
dropdown[2].choice[1]=" PAK \x09";
dropdown[2].choice[2]=" BLK \x0A";
initdropdowns();
showmenubar();
mon();
do { menuchoice=checkmenu();
switch (menuchoice)
{
case 20:
case 21:
case 22: changemode(menuchoice-19); break;
case 10: loadapicture(); break;
case 12: saveapicture(); break;
case 14: dopalette(); break;
}
} while (menuchoice !=0); // quit
removemenubar();
free(little); // free the font
wfreeblock(screen2);
textmode(C80);
}
void changemode(int cmode)
{
// make all boxes empty
dropdown[2].choice[0]=" PCX \x09";
dropdown[2].choice[1]=" PAK \x09";
dropdown[2].choice[2]=" BLK \x09";
// and put a check mark in the right one
if (cmode==1)
dropdown[2].choice[0]=" PCX \x0A";
else if (cmode==2)
dropdown[2].choice[1]=" PAK \x0A";
else if (cmode==3)
dropdown[2].choice[2]=" BLK \x0A";
picmode=cmode;
}
void loadapicture()
{
block tempblock=NULL;
moff();
removemenubar();
if (picmode==1)
picturename=wfileselector("Load a PCX","*.pcx");
else if (picmode==2)
picturename=wfileselector("Load a PAK","*.pak");
else if (picmode==3)
picturename=wfileselector("Load a BLK","*.blk");
moff();
if (picturename !=NULL) // if you selected something
{
wsetscreen(screen2);
wcls(0); // clear the virtual screen
if (picmode==1)
{
tempblock=wloadpcx256(picturename,&pal);
wputblock(0,0,tempblock,0);
wsetrgb(1,63,63,63,&pal);
wsetrgb(253,50,50,50,&pal);
wsetrgb(254,40,40,40,&pal);
wsetrgb(255,30,30,30,&pal);
wsetpalette(0,255,&pal);
}
else if (picmode==2)
{
tempblock=wloadpak(picturename);
wputblock(0,0,tempblock,0);
}
else if (picmode==3)
{
tempblock=wloadblock(picturename);
wputblock(0,0,tempblock,0);
}
if (tempblock !=NULL)
wfreeblock(tempblock);
}
wnormscreen();
wputblock(0,0,screen2,0);
showmenubar();
mon();
}
void saveapicture()
{
removemenubar();
moff();
if (picmode==1)
picturename=wfileselector("Save a PCX","*.pcx");
else if (picmode==2)
picturename=wfileselector("Save a PAK","*.pak");
else if (picmode==3)
picturename=wfileselector("Save a BLK","*.blk");
if (picturename !=NULL) // if you selected something
{
moff();
wnormscreen();
wputblock(0,0,screen2,0);
if (picmode==1)
wsavepcx256(picturename,screen2,&pal);
if (picmode==2)
wsavepak(picturename,screen2);
else if (picmode==3)
wsaveblock(picturename,screen2);
}
showmenubar();
mon();
}
void dopalette(void)
{
moff();
removemenubar();
palname=wfileselector("Load a palette","*.pal");
moff();
if (palname !=NULL)
{
wloadpalette(palname,&pal);
wsetpalette(0,255,&pal);
}
wnormscreen();
wputblock(0,0,screen2,0);
showmenubar();
mon();
}